package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 设备安装数据包信息对象 tb_device_data_packages
 * 
 * @author ruoyi
 * @date 2025-08-11
 */
public class TbDeviceDataPackages extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 关联的设备sn(对应tb_device.dev_sn) */
    @Excel(name = "关联的设备sn(对应tb_device.dev_sn)")
    private String deviceSn;

    /** 关联的数据包ID(对应tb_data_package.id) */
    @Excel(name = "关联的数据包ID(对应tb_data_package.id)")
    private Long packageId;

    /** 数据包名称 */
    @Excel(name = "数据包名称")
    private String packageName;

    /** 版本号 */
    @Excel(name = "版本号")
    private String packageVersioncode;

    /** 版本编号 */
    @Excel(name = "版本编号")
    private String packageVersionnumber;

    /** 包类型(1=导航数据 2=地形数据 3=航图 4=天气数据 5=系统更新) */
    @Excel(name = "包类型(1=导航数据 2=地形数据 3=航图 4=天气数据 5=系统更新)")
    private Integer packageType;

    /** 包大小(MB) */
    @Excel(name = "包大小(MB)")
    private BigDecimal packageSize;

    /** 包的MD5校验码 */
    @Excel(name = "包的MD5校验码")
    private String packageHash;

    /** 安装时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date installDate;

    /** 最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUpdateDate;

    /** 是否系统数据包(0=否 1=是) */
    @Excel(name = "是否系统数据包(0=否 1=是)")
    private Integer isSystemPackage;

    /** 状态(0=禁用 1=启用 2=待更新) */
    @Excel(name = "状态(0=禁用 1=启用 2=待更新)")
    private Integer status;

    /** 是否强制更新(0=否 1=是) */
    @Excel(name = "是否强制更新(0=否 1=是)")
    private Integer isForceUpdate;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setDeviceSn(String deviceSn) 
    {
        this.deviceSn = deviceSn;
    }

    public String getDeviceSn() 
    {
        return deviceSn;
    }

    public void setPackageId(Long packageId) 
    {
        this.packageId = packageId;
    }

    public Long getPackageId() 
    {
        return packageId;
    }

    public void setPackageName(String packageName) 
    {
        this.packageName = packageName;
    }

    public String getPackageName() 
    {
        return packageName;
    }

    public void setPackageVersioncode(String packageVersioncode) 
    {
        this.packageVersioncode = packageVersioncode;
    }

    public String getPackageVersioncode() 
    {
        return packageVersioncode;
    }

    public void setPackageVersionnumber(String packageVersionnumber) 
    {
        this.packageVersionnumber = packageVersionnumber;
    }

    public String getPackageVersionnumber() 
    {
        return packageVersionnumber;
    }

    public void setPackageType(Integer packageType) 
    {
        this.packageType = packageType;
    }

    public Integer getPackageType() 
    {
        return packageType;
    }

    public void setPackageSize(BigDecimal packageSize) 
    {
        this.packageSize = packageSize;
    }

    public BigDecimal getPackageSize() 
    {
        return packageSize;
    }

    public void setPackageHash(String packageHash) 
    {
        this.packageHash = packageHash;
    }

    public String getPackageHash() 
    {
        return packageHash;
    }

    public void setInstallDate(Date installDate) 
    {
        this.installDate = installDate;
    }

    public Date getInstallDate() 
    {
        return installDate;
    }

    public void setLastUpdateDate(Date lastUpdateDate) 
    {
        this.lastUpdateDate = lastUpdateDate;
    }

    public Date getLastUpdateDate() 
    {
        return lastUpdateDate;
    }

    public void setIsSystemPackage(Integer isSystemPackage) 
    {
        this.isSystemPackage = isSystemPackage;
    }

    public Integer getIsSystemPackage() 
    {
        return isSystemPackage;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    public void setIsForceUpdate(Integer isForceUpdate) 
    {
        this.isForceUpdate = isForceUpdate;
    }

    public Integer getIsForceUpdate() 
    {
        return isForceUpdate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceSn", getDeviceSn())
            .append("packageId", getPackageId())
            .append("packageName", getPackageName())
            .append("packageVersioncode", getPackageVersioncode())
            .append("packageVersionnumber", getPackageVersionnumber())
            .append("packageType", getPackageType())
            .append("packageSize", getPackageSize())
            .append("packageHash", getPackageHash())
            .append("installDate", getInstallDate())
            .append("lastUpdateDate", getLastUpdateDate())
            .append("isSystemPackage", getIsSystemPackage())
            .append("status", getStatus())
            .append("isForceUpdate", getIsForceUpdate())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
